vr2-6-05.wrl
[ VRML source code ]
#VRML V2.0 utf8
#vr2-6-05.wrl
Group {
children [
DEF Ball Transform {
children Shape {
appearance Appearance {
material Material {
diffuseColor 1 1 0
}
}
geometry Sphere { radius 0.15 }
}
},
DEF Timer TimeSensor {
cycleInterval 10.0
loop TRUE
startTime 1.0
stopTime 0.0
},
DEF Rot Script {
eventIn SFFloat set_angle
eventOut SFVec3f coord
url "Change.class"
}
]
}
ROUTE Timer.fraction_changed TO Rot.set_angle
ROUTE Rot.coord TO Ball.set_translation
[ Java source code ]
//Change.class
import vrml.*;
import vrml.field.*;
import vrml.node.*;
public class Change extends Script {
SFVec3f coord;
float c[]=new float[3];
float angle=0.0f;
public void initialize() {
coord = (SFVec3f) getEventOut("coord");
}
public void processEvent(Event e) {
if(e.getName().equals("set_angle")==true) {
angle=((ConstSFFloat)e.getValue()).getValue();
c[0] = (float)Math.sin(7*angle*6.28);
c[1] = (float)Math.cos(5*angle*6.28);
c[2] = (float)Math.cos(3*angle*6.28);
coord.setValue(c);
}
}
}